var handle,
  ajax = require("../../api.js")

handle = {
  /**
   * 初始化用户登录信息
   */
  initUserInfo: function() {
    // 缓存取信息
    this.loginToken = wx.getStorageSync("loginToken")
    this.trueMobile = wx.getStorageSync("trueMobile")
    this.userInfo = wx.getStorageSync("userInfo")
    this.userId = wx.getStorageSync("userId")

    // 设置请求接口的全局变量
    ajax.setGlobalParam("loginToken", this.loginToken)
  },
  /**
   * 判断用户是否已经登录
   */
  checkUserLogin: function(onlyCheck = false) {
    // 只判断登录了没有，不进行跳转操作的
    if (onlyCheck) {
      return this.loginToken ? true : false
    }
    if (!this.loginToken) {
      wx.showToast({
        title: "请先登录",
        icon: "loading",
        duration: 1500,
        mask: false,
        complete: () => {
          setTimeout(() => {
            wx.navigateTo({
              url: "/moduleUser/getWxInfo/getWxInfo?loginToken=clear"
            })
          }, 1500)
        }
      })
      return false
    }
    // else if (!this.trueMobile) {
    //   wx.navigateTo({
    //     url: "/pages/bindInfo/bindInfo"
    //   })
    //   return false
    // } else if (!this.userId) {
    //   wx.navigateTo({
    //     url: "/pages/bindTk/bindTk"
    //   })
    //   return false
    // }
    return true
  },

  /**
   * 退出登录。清理对应的状态
   * @param {String} key 退出登录类型
   */
  clearGlobal: function(key = "all") {
    if (key == "all") {
      // 循环只清理用户的信息，不清理其他的缓存信息
      Object.keys(this).forEach(item => {
        if (typeof this[item] != "function") {
          wx.removeStorageSync(item)
        }
      })

      // 顺便清除接口的loginToken
      ajax.setGlobalParam("loginToken", "")
    } else {
      wx.removeStorageSync(key)
    }
    this[key] = null // 清空this的值
    // 特殊值处理
    switch (key) {
      case "loginToken":
        ajax.setGlobalParam("loginToken", "")
        break
    }
  },

  /**
   * 设置用户信息
   */
  setUserInfo: function(key, value) {
    this[key] = value
    wx.setStorageSync(key, value)

    // 特殊的存值处理
    switch (key) {
      case "loginToken":
        ajax.setGlobalParam("loginToken", value)
        break
    }
  },

  /**
   * 获取用户对应信息
   */
  getUserInfo: function(key) {
    // 本地找，本地找不到缓存找
    this[key] ? "" : (this[key] = wx.getStorageSync(key))
    return this[key]
  }
}

module.exports = handle
